1. Field of the Invention
The present invention relates to a communications network, and in particular to a network in which customers use a number of different call control mechanisms.
2. Description of Related Art
In a conventional public telephone network, customers have only one type of address, namely telephone numbers, and there is a single uniform call control mechanism which is built into the telephone network and which is used for establishing and for terminating calls, and for recognising e.g. when a called party is busy. Increasingly however, customers have access to a range of different network technologies, each with its own address type. For example, a customer might have in addition to a telephone number a conventional IP (Internet Protocol) address, a multicast IP address and a URL (Uniform Resource Locator). In general, each of these different address types has associated with it a respective call control protocol (where the term xe2x80x9ccall controlxe2x80x9d is used broadly to denote the means for establishing and terminating connections between different parties). For example, audio or visual communication between parties using conventional IP addresses commonly uses the H.323 protocol, whereas for communication between IP multicast addresses a different protocol, Session Description Protocol (SDP) is used. Maintaining a one-to-one mapping between address types and call control has the advantage, that the user knows unambiguously the appropriate call control mechanism for establishing contact with a particular address. However, as new call control mechanisms have proliferated, and as existing protocols develop to offer new functionality and to harness the capabilities of increasingly sophisticated client terminals and of networks offering more bandwidth, it becomes increasingly difficult to maintain the one-to-one mapping. As a result, it has become difficult to guarantee successful call set-up based simply on knowledge of the address type of the called party.
According to a first aspect of the present invention, there is provided a method of operating a communications network comprising;
a) for each of a plurality of users connected to the network, registering user profile data in a directory which is accessible to other users, which user profile data includes identifiers for one or more of a plurality of different call control protocols;
b) prior to establishing a call from a calling party to a called party, reading user profile data for the called party terminal from the directory; and
c) subsequently establishing the call using a call control protocol identified in the said user profile data for the called party.
The present invention makes it possible to dispense with one-to-one mapping of address types and call control protocols, whilst still ensuring that a calling party has all the information necessary for successful call set-up. This is achieved by recording call control capabilities for different users at client terminals in a directory which is accessed by a customer prior to attempting to set up a call. In addition to allowing flexibility in the selection of call control protocols, this arrangement also facilitates customer mobility, since a user can log on at different terminals and update the corresponding user profile accordingly.
Often, the step of registering user profile data will be carried out by the client terminal itself. For example, when the client terminal is a PC connected to a LAN, then the client terminal may register its user profile with the directory each time the user logs onto the LAN. Preferably however the method also provides for the step of registering the client profile to be carried out by a third party. The third party may for example register a conference address and a session control protocol which applies to a multiplicity of parties to a conference.
Preferably the user profile includes at least one network address for a client terminal. Preferably the user profile further comprises network driver or call control identities for each network driver used by the client terminal to access the network. Together these are known as a client capability.
Preferably the method includes registering the user profile data when a user at a client terminal logs on to a network; and maintaining a record of the user profile data after the user logs off. Preferably in this case the user profile includes a flag which distinguishes data for persistent terminal capabilities from other data, and only the said data for persistent terminal capabilities are maintained after the user logs off.
Preferably, in the step of registering user profile data, the user profile data is structured as a hierarchy of objects including a user profile parent object and at least one client capability child object. Preferably the hierarchy of objects further comprises network address objects and call control objects, which network address objects and call control objects are related to the client capability object as child objects to parent object.
The terms object, parent and child are used here and throughout the description and claims with the meanings normally assigned these terms in object oriented design/programming (OOD/OOP).
According to a second aspect of the present invention there is provided a communications system comprising:
a) a network:
b) a multiplicity of client terminals connected to the network, and different ones of the multiplicity of client terminals having different call control capabilities;
c) a directory which is accessible to the multiplicity of client terminals and which is programmed with user profile data for users of the client terminals, which user profile data includes, for each user, identifiers for one or more of a plurality of call control protocols.
The directory may be located entirely on a server which is remote from the client terminals and which is accessed via the network. Alternatively the directory may comprise directory system proxies located locally at respective client terminals and a database which is located remotely from the terminals and which is accessible via the directory system proxies.